1. Field of the Invention
The present invention relates to digital systems, and more specifically to a pipeline structure for use in a digital system.
2. Description of Related Art
A pipeline structure consists of a sequence of functional units (stages), which perform a task in several steps; the stages work in parallel thus giving higher throughput than if all the steps had to be completed before starting a next task. Pipelines are commonly used in several applications, for example, to process different parts of an instruction in a microprocessor.
Typically, the pipeline has a synchronous architecture. A synchronous pipeline receives a single clock signal, which controls all the stages. As a consequence, every stage must complete its work within one clock period.
A drawback of the synchronous pipeline is that all the stages switch at the same time. This involves high peaks of power consumption (due to the current dissipated by the short-circuits that are formed during the switching of the transistors of the logic gates, and to the current needed for charging and discharging wires and capacitors). These peaks of power consumption introduce sources of noise, which can jeopardize the functionality of the whole electronic device that embeds the pipeline. Moreover, they impose several constrains in the design of a power supply structure; particularly, metal tracks used to supply the electronic device (when integrated in a chip of semiconductor material) must be dimensioned so as to withstand the aforementioned high peaks. As a consequence, an increased area of the chip is required to integrate the electronic device.
Asynchronous pipelines have been proposed in order to reduce the peaks of power consumption. In an asynchronous pipeline, all the stages proceed independently (so that they do not switch at the same time). A handshaking mechanism is then used to maintain every pair of adjacent stages in synchronization. For this purpose, each stage generates a signal indicative of the completion of its work. This signal is used to move the result of the stage to a next stage, and then to trigger starting of the next stage.
However, the implementation of the handshaking mechanism is relatively complex. Moreover, an additional circuit is required to synchronize the flux of input and output information with the external circuitry.